// 例子18

var pattern1 = /java(script)?/; // 可以匹配字符串“java”,其后可以有“script”也可以没有
var pattern2 = /(ab|cd)+|ef/; // 可以匹配字符串“ef”,也可以匹配字符串“ab”或“cd”的一次或者多次重复

var pattern3 = /[a-z]+(\d+)/; // 这里，字母后的数字是我们关心的部分，可在匹配之后获取数字来进行其他操作

var pattern4 = /['"][^'"]*['"]/; // 匹配位于单引号或双引号之内的0个或多个字符及两侧的引号（但两侧的引号不一定同时是单引号或双引号）
var pattern5 = /(['"])[^'"]*\1/; // 匹配位于单引号或双引号之内的0个或多个字符及两侧的引号（两侧的引号同时是单引号或双引号）

var pattern6 = /([Jj]ava(?:[Ss]cript)?)\sis\s(fun\w*)/; // 这里(?:[Ss]cript)?)仅分组，所以\2引用的是(fun\w*)